Przykad 2.5. Algorytm Euklidesa
public static void gcd (int a[], int b[], int gcd[]) {
   if (isZero(a)) { assign (gcd, a); return; }
   if (isZero(b)) { assign (gcd, b); return; }

   // Zapewnij, e a i b nie zostan zmienione
   a = copy (a);
   b = copy (b);

   while(!isZero(b)) {
      // Ostatni argument do odjcia reprezentuje znak wyniku, ktry
      // moemy pomin, gdy odejmujemy tylko mniejsze od wikszych
      if (compareTo(a, b) > 0) {
         subtract (a, b, gcd, new int[1]);
         assign (a, gcd);
      } else {
         subtract (b, a, gcd, new int[1]);
         assign (b, gcd);
      }
   }

   // Warto przechowywana w a jest obliczonym GCD liczb (a, b)
   assign (gcd, a);
}
